]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
keyboard: Query stage for target actor instead of event.get_source()
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 25 Feb 2022 12:09:17 +0000 (13:09 +0100)
committerMarge Bot <marge-bot@gnome.org>
Fri, 4 Mar 2022 12:27:34 +0000 (12:27 +0000)
Events are going to stop containing the destinatary, so stop using this
API. Querying the stage is equivalent and ensured to be up-to-date.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2216>

js/ui/keyboard.js

index 6ee82a30285ee6336a3d33d0232b52529c9ba3c5..69afc08b16209c6ce184182defbad000a169d06f 100644 (file)
@@ -259,8 +259,10 @@ var LanguageSelectionPopup = class extends PopupMenu.PopupMenu {
     }
 
     _onCapturedEvent(actor, event) {
-        if (event.get_source() == this.actor ||
-            this.actor.contains(event.get_source()))
+        const targetActor = global.stage.get_event_actor(event);
+
+        if (targetActor === this.actor ||
+            this.actor.contains(targetActor))
             return Clutter.EVENT_PROPAGATE;
 
         if (event.type() == Clutter.EventType.BUTTON_RELEASE || event.type() == Clutter.EventType.TOUCH_END)
@@ -407,9 +409,10 @@ var Key = GObject.registerClass({
         let type = event.type();
         let press = type == Clutter.EventType.BUTTON_PRESS || type == Clutter.EventType.TOUCH_BEGIN;
         let release = type == Clutter.EventType.BUTTON_RELEASE || type == Clutter.EventType.TOUCH_END;
+        const targetActor = global.stage.get_event_actor(event);
 
-        if (event.get_source() == this._boxPointer.bin ||
-            this._boxPointer.bin.contains(event.get_source()))
+        if (targetActor === this._boxPointer.bin ||
+            this._boxPointer.bin.contains(targetActor))
             return Clutter.EVENT_PROPAGATE;
 
         if (press)
@@ -1296,7 +1299,7 @@ var KeyboardManager = class KeyBoardManager {
         if (!this._keyboard)
             return false;
 
-        let actor = event.get_source();
+        const actor = global.stage.get_event_actor(event);
         return Main.layoutManager.keyboardBox.contains(actor) ||
                !!actor._extendedKeys || !!actor.extendedKey;
     }